<?php
/**
 *
 * 版权所有：安德玛(underArmour)
 * 作    者：1554324405@qq.com
 * 日    期：2020-05-20
 * 版    本：1.0.0
 * 功能说明：定时任务控制器。
 *
 **/
namespace Api\Controller;

class CrontabController extends BaseController
{
    /**
     * 定期检测接单任务在2小时内未执行的，将任务余量放回任务大厅
     */
    public function index()
    {
        $wait_do_task_list = M('user_task')->where(array('status'=>0,'t'=>array('lt',time()-7200)))->field('id,task_id,uid')->select();
        foreach ($wait_do_task_list as $user_task){
            // 更改接单状态为取消
            M('user_task')->where('id='.$user_task['id'])->data(array('status'=>4,'sh_t'=>time(),'sh_remark'=>'任务已超时'))->save();
            // 对应任务已完成数量-1
            M('task')->where('id='.$user_task['task_id'])->setDec('hasdid_num',1);
            //加入消息通知
            $task = M('task')->where('id='.$user_task['task_id'])->field('title')->find();
            //加入消息通知
            M('user_message')->data(array('uid'=>$user_task['uid'],'content'=>'接单任务'.$task['title'].'超时未完成，已被系统回收','t'=>time(),'type'=>2))->add();
        }
        $this->response($this->res, 'json');
    }
}